Saya rasa inilah yang Anda cari menggunakan GROUP_CONCAT :
SELECT
source.product,
GROUP_CONCAT(cat.category) cats
FROM cat
JOIN source on source.product = cat.product
GROUP BY source.product
Jika Anda mencoba untuk mendapatkan ', ' di antara setiap kategori, gunakan SEPARATOR dengan GROUP_CONCAT . Misalnya:
GROUP_CONCAT(cat.category separator ', ')