Here is a way you can do this, but it is not particularly "nice":
SELECT (case when substring_index(colours, ', ', 1) like '%red%'
then substring_index(colours, ', ', 1)
when substring_index(colours, ', ', 2) like '%red%'
then substring_index(substring_index(colours, 2), ', ', -1)
when substring_index(colours, ', ', 3) like '%red%'
then substring_index(substring_index(colours, 3), ', ', -1)
when substring_index(colours, ', ', 4) like '%red%'
then substring_index(substring_index(colours, 4), ', ', -1)
. . .
end)
from CARS
WHERE colours like '%red%';
You need to manually extend the query to the longest list in the data. And, this returns the first matching item, not all of them.