Hola nightduke:
No sé si entendí correctamente qué es lo que estás queriendo hacer, pero si no estoy equivocado, al poner la unión estás tratando de obtener una especie se Subtotales por cada categoría, ya que la consulta es básicamente la misma, pero en una agrupas y en otra no, correcto???
Creo que deberías darle un vistazo a los modificadores del GROUP BY:
http://dev.mysql.com/doc/refman/5.0/...modifiers.html
Si estoy en lo correcto esto te debería servir.
En cuanto a tu pregunta original inténtalo así:
Al poner la cláusula ORDER BY al final de la consulta se ejecuta sobre el resultado de la unión. Me queda la duda que por qué pones ( id +0 y mes - 0) en el ORDER BY, nunca me había topado con esta sintaxis, igual y alguna funcionalidad que desconozco.
Saludos
Leo.