here is an updated query working in version 8:
WITH RankedData AS (
SELECT Klasse, Name, KW, RANK() OVER (PARTITION BY Klasse ORDER BY KW+0 DESC) AS class_rank FROM valar_date ),
NumberedData AS (
SELECT Klasse, Name, KW, class_rank, ROW_NUMBER() OVER (ORDER BY class_rank, KW DESC) AS row_num FROM RankedData )
SELECT CONCAT('group', FLOOR(row_num / 4) + 1) AS Groupname, GROUP_CONCAT(Name ORDER BY row_num SEPARATOR ', ') AS Players FROM NumberedData GROUP BY FLOOR(row_num / 4);