La consulta sería algo así:
SELECT categoria,jugador,sum(puntaje) FROM tabla GROUP BY categoría,jugador ORDER BY categoria,jugador
Pero despues deberás emplear código para mostrar como dices ya que lo que te va a devolver es una tabla del tipo
Código:
CATEGORIA1 JUGADOR1 12
CATEGORIA1 JUGADOR2 22
CATEGORIA1 JUGADOR3 92
CATEGORIA2 JUGADORX XX
CATEGORIA2 JUGADORY ZZ
CATEGORIA2 JUGADORZ MM
Debes recorrer los resultados comprobando cuándo cambia la categoría para poner la cabecera de cada una...