MySQL está tratando de aplicar ORDER BY a UNION pero UNION solo tiene el child columnas (sin el child. prefijo en eso), no hay s.id en la UNIÓN. Pero puedes agregar uno:
SELECT child.*, s.id as sid ...
UNION
SELECT child.*, s.id as sid ...
ORDER BY sid DESC
Debe darle un alias, ya que UNION eliminará el nombre de la tabla o el prefijo del alias. Si hay un sid columna en child luego use algo más como alias para s.id .