perdona, no te puse bien el orden para lo que quieres. Puesto que los otros colores no importan, usa este orden
El problema es que al no indicar el orden de los otros colores, los otros colores pasan a ser nulos y el nulo se ordena antes que nada... De ahí que tengas que ordenar primero descendente, y luego, si quieres, puedes añadir otro orden.
Un único problema: saldrán datos, aunque no haya ningún rojo. Si debes evitar ese caso, primero tendrías que lanzar una consulta para comprobar que al menos hay un registro con color rojo.