The variable x inside the quantifier is local to the quantifier. It is not the same as the global variable x specified in FindInstance. The statement
Exists[x, x \[Element] Complexes, x^2 + 1 == 0]
does not have any free variables. It is a true sentence, so the input to FindInstance is equivalent to
FindInstance[True, x]. True is satisfied by any value of x, in particular by x->0.
A quantifier variable is bound to the nearest enclosing quantifier. For instance, the formula form below contains four different variables named x, one free, three bound to different quantifiers. Variables specified in the second argument of FindInstance are interpreted as free variables of its first argument.
In[1]:= form = x==17 && ForAll[x, x>2, x^2>4 && Exists[x, x>0, x<1 && ForAll[x,
x<0, x^2>0]]];
In[2]:= FindInstance[form, x]
Out[2]= {{x -> 17}}