Была такая же проблема, но был найден более простой способ, заключающийся в создании вспомогательного поля, на которое затем можно ссылаться в GROUP BY.
Или вы можете сделать тот же условный трюк, поместив его в GROUP BY, при условии, что вы заполните поля.
SELECT *,
If( 'whatever field to check' = 2 , CONCAT(Department_Code,Course_Code), Course_Code) AS 'group1'
FROM Classes
GROUP BY group1