By default Solve returns generic solutions, i.e. it is allowed to miss lower-dimensional solution components. With MaxExtraConditions->All you get all solutions.
In[3]:= Solve[12 z^2 (-243 - 27 y + z^2) == 0, z, Reals, MaxExtraConditions->All]
Out[3]= {{z -> ConditionalExpression[0, y ∈ Reals]},
{z -> ConditionalExpression[-Sqrt[243 + 27 y], y > -9]},
{z -> ConditionalExpression[Sqrt[243 + 27 y], y > -9]}}