Try taking out the Group By in the top sql Unions don't like that. Group at the end when all the data is collected. If it still breaks, try removing the LIMIT 1 to test.
SELECT consultationstatus_diagnosis, count(*) as number
FROM tbl_consultationstatus
WHERE month(consultationstatus_date)=1
ORDER BY count(*) DESC
LIMIT 1
UNION ALL
SELECT consultationstatus_diagnosis, count(*) as number
FROM tbl_consultationstatus
WHERE month(consultationstatus_date)=2
GROUP BY consultationstatus_diagnosis
ORDER BY count(*) DESC
LIMIT 1;