Использование функции агрегирования позволяет уменьшить количество строк, уплотняющих результат для каждого значения в одной (поддельной) агрегированной строке
Вы также можете использовать функцию агрегации min или другие. Использование этой функции просто для сокращения нескольких строк до одной и получения результата сводной таблицы
SELECT
item_id,
MIN(IF(property_name = 'color', value, NULL)) AS color,
MIN(IF(property_name = 'size', value, NULL)) AS size,
MIN(IF(property_name = 'weight', value, NULL)) AS weight
FROM
properties
GROUP BY
item_id