Hay varios problemas:
1) Estás usando palabras reservadas como nombres de columnas (type, por ejemplo) y eso puede dar lugar a resultados erráticos.
2) Estás poniendolé a dos columnas el mismo alias, lo que debería darte error, pero aún si lo puedes usar, estás tratando que te ordene por un alias... que corresponde a dos columnas distintas. Eso no es razonable.
3) Estás usando subconsultas para columnas de un SELECT, lo que resulta sumamente ineficiente, ya que se ejecutan una vez por cada valor devuelto en la consulta principal, y además una vez por cada columna...
Ese tipo de consulta se resuelve de otro modo, por ejemplo:
Código MySQL:
Ver original id,
IF(T1.r
= 'tom', T1.c
'') as_1
, if(T2.r
='jerry', T2.c
, '') as_2
ids I
`type` IN ('tom','jerry')