SELECT DISTINCT не подходит для вашей задачи, так как он удаляет только полные дубликаты строк, а вы хотите сгруппировать данные по значениям в одном столбце и собрать другие значения в массив для каждой группы.
Для достижения желаемого результата вам потребуется использовать группировку и агрегатные функции. Вот как вы можете сделать это:
```
SELECT printer, JSON_ARRAYAGG(materials) AS materials
FROM printer_materials
GROUP BY printer;
```
Этот запрос будет группировать данные по значению столбца "printer" и для каждой группы собирать значения столбца "materials" в массив JSON с помощью функции JSON_ARRAYAGG.