Использование списков, разделенных запятыми, в поле базы данных является антишаблоном, и его следует избегать любой ценой.
Потому что это PITA для извлечения этих значений через SQL, разделенных запятыми.
Вместо этого вы должны добавить отдельную таблицу ссылок для представления отношений между категориями и фильмами, например:
Table categories
id integer auto_increment primary key
name varchar(255)
Table movies
id integer auto_increment primary key
name varchar(255)
Table movie_cat
movie_id integer foreign key references movies.id
cat_id integer foreign key references categories.id
primary key (movie_id, cat_id)
Теперь вы можете сделать
SELECT m.name as movie_title, GROUP_CONCAT(c.name) AS categories FROM movies m
INNER JOIN movie_cat mc ON (mc.movie_id = m.id)
INNER JOIN categories c ON (c.id = mc.cat_id)
GROUP BY m.id
Вернуться к вашему вопросу
Альтернативно используя ваши данные вы можете сделать
SELECT m.name as movie_title
, CONCAT(c1.name, if(c2.name IS NULL,'',', '), ifnull(c2.name,'')) as categories
FROM movies m
LEFT JOIN categories c2 ON
(replace(substring(substring_index(m.categories, ',', 2),
length(substring_index(m.categories, ',', 2 - 1)) + 1), ',', '') = c2.id)
INNER JOIN categories c1 ON
(replace(substring(substring_index(m.categories, ',', 1),
length(substring_index(m.categories, ',', 1 - 1)) + 1), ',', '') = c1.id)
Обратите внимание, что последний запрос работает только в том случае, если в одном фильме 2 или менее категорий.