Your example is a little bit tricky : what are we meaning with
"quantifying a variable over the empty set" ?
It depends on the way we choose to restrict the quantifiers.
I'll try to discuss your examples in a more "formal" setting.
1) "For all x and y in the natural numbers, P(x) implies Q(y)", where the predicate P(x) is true for all whole numbers, and the predicate Q(y) is false for all whole numbers.
If we want to have "sets" os values for the variables, we need to use the language of set theory, with the relation ∈ and the individual constant ∅; we will also assume that we have proved in our f-o set theory (e.g.ZFC) the existence of the set N of the natural numbers with the usual properties (like order).
Thus, we may translate 1) as :
(∀x) (∀y) [ (x∈N ∧ y∈N) → (P(x) → Q(y)) ]
Let's define an interpretation where :
P(x) := x >= 0 ; i.e.a predicate that is always true of the natural numbers,
and :
Q(y) := x < 0 ; i.e.a predicate that is always false of the natural numbers.
With this interpretation, (P(x) → Q(y)) is always false of the natural numbers.
But we have the antecedent : (x∈N ∧ y∈N); if we restrict our domain of interpretation to N, it is trivially true but, in a domain D whatever, it need not be so.
Thus, if the domain of the interpretation D is a model of our set theory, we have in it N, but the above formula is again true, because it is not true that all sets are in N.
2) "For all x in the empty set and y in the natural numbers, P(x) implies Q(y)".
Now we translate it as :
(∀x) (∀y) [ (x∈∅ ∧ y∈N) → (P(x) → Q(y)) ]
With the same interpretation as above, (P(x) → Q(y)) is still false, and the antecedent (x∈∅ ∧ y∈N) is always false (because there are no x in ∅). Thus, the complete formula is true in a domain D whatever.
But we may change strategy and forget about set theory.
We will consider now a "pure" f-o formula :
(∀x) (∀y) [ P(x) → Q(y) ].
With the above interpretation of P and Q, in the domain N of the natural numbers it is always false (for the same reason above).
But now we have problems with 2) ; in "pure" f-o language, there is no relation ∈. So, how to translate it ?
We may use a predicate E (for Empty) such that E(x) is always false for each object in the domain (i.e.N) and we get :
(∀x) (∀y) [ E(x) → (P(x) → Q(y)) ] .
In this case, the formula is always true by "definition" of E.
Conclusion
We need to be precise in setting the formal language we are using , because different languages have different "expressive capabilities".
Note
I do not like the expression "P(x) is a void statement"; in "standard" f-o language all predicates are always defined. I.e., for all object d in the (not-empty) domain of interpretation D, P(d) holds or P(d) does not hold.
If in the domain D there are something that is not a number, (∀x) (x >= 0) is false.