You can unbind the quantifiers:
$$ \forall x\in S: P(x) \quad\equiv \quad\forall x: (x \in S) \implies P(x) $$
$$ \exists x\in S: P(x) \quad\equiv \quad\exists x: (x \in S) \wedge P(x) $$
so the formula you wrote means the same thing as
$$ \forall p : p \in \mathcal U \implies \left( \exists r : r \in \Bbb R^+ \wedge B_r(p)\subseteq \mathcal U \right) $$
so the case of $\mathcal{U} = \varnothing$ no longer has you quantifying over an empty domain. And since the antecedent is always false, the conditional is always (vacuously) true.
In fact, we always have
- $\forall x \in \varnothing : P(x)$ is a tautology
- $\exists x \in \varnothing : P(x)$ is a contradiction
Some approaches to doing logic actually reject empty domains, and use rules of deduction that only work for nonempty domains, such as:
$$ (\forall x \in \mathcal{D} : P(x)) \implies (\exists x \in \mathcal{D} : P(x)) $$
This should look familiar, as it is quite similar to the objection you had!
However, this implication does not hold without the hypothesis that $\mathcal{D}$ is nonempty. An example of a corrected deduction rule is:
$$ (\forall x \in \mathcal{D} : P(x)) \implies (\mathcal{D} = \varnothing) \vee (\exists x \in \mathcal{D} : P(x)) $$
So keep this in mind — the rules of logic you have learned, be it formally or informally, may actually be wrong for the case where empty domains of quantification are allowed, so until you are used to the more general case, always treat such possibilities with care.