Если я правильно помню, проблема здесь в том, что значение столбца, который не содержит функцию агрегирования, вычисляется при обработке первой строки группы, тогда как присвоение @var:=SUM
происходит, когда агрегированное значение равно вычисленное.
То есть вам нужно либо просто повторить функцию агрегирования в другом контексте, либо, если агрегированная функция довольно сложна, и вы не хотите повторять: а) поместить все в подзапрос, б) использовать что-то вроде IF(COUNT(*), @var, @var)
(выглядит довольно нахально)
P.S. Ваши запросы кажутся недействительными, поскольку имена столбцов должны быть заключены в кавычки.