Vous avez besoin de fonctions de concaténation comme CONCAT_WS() et CONCAT pour concaténer les colonnes de chaque ligne puis agrégation avec GROUP_CONCAT() pour chaque name :
SELECT CONCAT('[', GROUP_CONCAT(CONCAT('(', CONCAT_WS(',', name, device, passed, failed), ')')), ']') AS result
FROM results
GROUP BY name
Voir la démo .