After building some formal arguments I’m beginning to see what you are saying, all in all. What follows is a sketch of some of the thoughts I had pondering this matter and toying around with formalities to grasp it.
Suppose we formalize existence as a predicate, and denote it with E. In Zermelo-Fraenkel set theory, the axiom of comprehension allows us, given any predicate P, to subdivide any set S into two subsets: the elements of S that satisfy P, and those that do not. Now, let S be some non-empty set. The axiom tells us that there exists then the set
S_{\neg E}:=\left\{x\in S\,\middle|\,\neg Ex\right\}\rlap{\quad,}
i.e. the set of elements of S that do not satisfy the existence predicate E. The only question now is whether this set empty or not. If it is, then universal quantification over it gives trivially true propositions, while existential quantification gives trivially false ones. I am tempted to agree that this would be the more intuitive answer, and it is consistent with the stipulation you suggest, that only items that exist get to have properties. Since the elements of S_{\neg E} by definition do not exist, this rule can only work if there are no such elements.
Without this stipulation, however this does not seem to follow. Neither the introduction of existence as a predicate, nor any of the rules of propositional or predicate logic or set theory seem to forbid this set from having elements as a matter of logical consequence (I’m open to seeing a proof otherwise). If it is non-empty, though, then the statement that existence as a predicate is a prerequisite for all other predicates is just false, since the predicate “is an element of S_{\neg E}” is satisfied for objects that violate the existence predicate. Statements like “There exists an x such that x does not exist” translates to an actually really true proposition “\exists x:\neg Ex”, absurd though it may sound on the face of it.
That is to say, in order to introduce an existence predicate, we must stipulate that predicates are only true for individuals that satisfy the existence predicate. It looks like I am coming to agree with you more and more here. Now, naively, we would say that the stipulation should look something like this:
\forall P:\left(\forall x:\left(Px\to Ex\right)\right)
Of course, any negation of a predicate is itself a predicate. To have no horn is just as much of a property as to have a horn is. Let \mathbb P be the set of all predicates. Then
\forall P:\left(\left(P\in\mathbb P\right)\to\left(\neg P\in\mathbb P\right)\right)\rlap{\quad.}
In particular, this means that since E is a predicate, non-existence \neg E must also be a predicate. And now we get some silliness: Since existence and non-existence are predicates, we can instantiate our stipulation with the non-existence predicate \neg E substituted for P, and logically so conclude:
\forall x:\left(\neg Ex\to Ex\right)
In other words, because in order to satisfy a predicate something must exist, the predicate of not-existing is only satisfied by things that exist. All things that do not exist, do exist.
This is, of course, utterly absurd. Again one is tempted to think of the empty set, and of equating being an element of that with non-existence. That would resolve the absurdity, but we already adopted a stipulation to get rid of it, and here we are again, in need of a new stipulation?
The other idea I’ve had is to restrict the stipulation. Rather than saying that for all predicates P, E must be satisfied in order that P can be, we might want to make a special exception to a few. After all, the stipulation itself already marks E as a special predicate: No other predicate needs to be satisfied in order that all the others can be. So why not go one step further and say that all predicates except \neg E are satisfied only by things that satisfy E? Alternatively, we could just stipulate that the rule about negations of predicates being predicates holds for all predicates except existence. That’d be another rule that naively should apply to all predicates, but would have to suffer an exception just to allow for existence to be a predicate.
So, it would appear existence is rather quite special. Naively introducing it invites all manner of either absurd sounding consequences or outright contradictions. It is a “predicate” with consistency only when packaged together with a new rule, and that rule, that should naively apply to all predicates and their negations, must be formulated so as to specifically not apply to the negation of existence itself, or some other universal rule for predicates must be made to not work for existence. Existence seems to just naturally not want to be a predicate, and ways to force it into being one all require building up special facilities just for it, enough to make one question just in what sense it even is a predicate anymore, outside of enjoying the notation “Ex” that we grant other predicates.
Of course, all along we had the existence quantifier \exists: Propositions wrapped in it map to \texttt{FALSE} when ever there is no logically consistent way of satisfying what ever properties the object so quantified is assigned within the scope. It plays perfectly well with the universal quantifier, and with the empty set. The only thing it is lacking, really, is the ability to be put by an individual without a scope and yield a proposition. If I let c be a symbol for Charlie the unicorn, the formula “Ec” is a proposition, but the formula “\exists c” is not. The existence quantifier seems to do just about everything we wanted from the existence predicate, except for being a predicate. And even then, to say that E was a predicate by the end feels (to me, at least) somewhat suspect, considering how categorically unlike every other predicate we had to make it, just to get to define it coherently.