Even in the complex case the full solution can be pretty complicated, if you ask for the full solvability conditions;
eqn = (-4 + c1^2 + 2 c1*c2 + c2^2 + (s1 + s2)^2)/4 -
3/8*(a2*r1 + a1*r2)*(c2*s1 - c1*s2)*x +
9/64*(a1^2*r2^2*(c1^2 + s1^2) - 2*a1*a2*r1*r2)*x^2;
Echo[Reduce[eqn == 0, x]];
In the real case, the solvability conditions involve analyzing a semialgebraic variety of high degree in several variables.
It is true that when the generated conditions are too complicated they are hard to use in practice. Would you like Mathematica to return simply
Echo[Discriminant[eqn, x] >= 0];
as the condition for real solutions?