Как запросом проверить входит ли дата из списка в диапазон дат?
Выносите даты в отдельную таблицу:
Название таблицы: location_event_dates
id - идентификатор даты;
location_event_id - идентификатор из таблицы location_event (то, что у вас в вопросе)
event_date - одна из дат события (в формате даты, а не строки!)
Тогда будет нормальный поиск:
select le.id, le.locationid, le.eventid,
          led.event_date
from location_event le
join location_event_dates led on led.location_event_id = le.id
where led.event_date between :begin_date and :end_date
Для MySQL 8 можно, но запрос страшненький
WITH RECURSIVE `cte` AS (
  (SELECT `id`, `locationid`, `eventid`,
          TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(`list`, ','), ',', 1), ',', -1)) AS `date`,
          1 AS `idx`
    FROM `test`
    HAVING `date` != '')
  UNION
  (SELECT `t`.`id`, `t`.`locationid`, `t`.`eventid`,
          TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(`t`.`list`, ','), ',', `cte`.`idx` + 1), ',', -1)) AS `date`,
          `cte`.`idx` + 1
     FROM `cte`
     JOIN `test` AS `t` ON `t`.`id` = `cte`.`id`
     HAVING `date` != '')
),
SELECT `id`, `locationid`, `eventid`, 
       CONCAT (SUBSTRING(`date`, 7, 4), '-', SUBSTRING(`date`, 4, 2), '-', SUBSTRING(`date`, 1, 2)) AS `date`
  FROM `cte`
  HAVING `date` >= :firstDate AND `date` < :lastDate
Лучше один раз потратить время и нормализовать таблицу.