MAX determines which value is the greatest based on the string collation (not by the string length).
In general, aggregate functions ignore NULL values except COUNT(*).

GROUP_CONCAT() uses "," as the default string separator.
To change the separator, use a SEPARATOR clause:
   SELECT GROUP_CONCAT(col1 SEPARATOR ' - ') AS ...
To change the concatenation order, add an ORDER BY clause:
   SELECT GROUP_CONCAT(col1 ORDER BY col1 DESC) AS ...
DISITNCT removes duplicates from the set of concatenated strings:
   SELECT GROUP_CONCAT(DISTINCT col1) AS ...