The axioms of ZF define what a set is by:
- $\omega$ is a set
- If $x$ and $y$ are sets, then $\{x, y\}$ is a set
- If $x$ is a set, then $\bigcup x$ is a set
- If $x$ is a set, then $\mathcal{P}(x)$ is a set
- If $x, y_1, ..., y_n$ are sets and $P$ is a statement free variables $x, y, z_1, ..., z_n$, then $\{z \in x : P\}$ is a set
and also defines equality between sets by the axiom of extensionality.
But I don't understand why we can't just add "nothing else is a set" as an axiom to the list, as we usually do when defining a certain mathematical object.
Wouldn't adding that axiom solve the problem of some statements being independent? If we can't prove a set exists, then it means it can't be produced using the rules listed above, so it's not a set.
It's not clear why we need to. One reason we "can't" has to do with a technicality. ZF is a theory in "first-order logic". Saying that nothing is a set except that which the axioms imply is a set is not a "first-order" statement, so if we tried to add it we'd no longer have a first-order theory. That would be too bad, because first-order logic works out a lot nicer than higher-order logics.
There's no way to say "nothing is a set except things that the axioms imply are sets" using just $\forall$, $\exists$ and $\in$.
(In fact, the axioms don't quite say what you say they say! There's no mention of "is a set" in the actual axioms. What you say is maybe how one thinks off what the axioms mean, but in fact, for example the actual axiom (2) is $$\forall x\forall y\exists z(\forall t(t\in z\iff (t= x\lor t= y))).$$The axioms talk about sets, not about what is or is not a set; adding "is a set" to the formalism makes it a totally different sort of thing.)