select
group_concat(`2018` SEPARATOR ';') as `2018`,
group_concat(`2019` SEPARATOR ';') as `2019`,
group_concat(`2020` SEPARATOR ';') as `2020`,
group_concat(`2021` SEPARATOR ';') as `2021`
from (SELECT
CASE WHEN date BETWEEN '2018-01-01' AND '2018-12-31' THEN `index` ELSE null END AS `2018`,
CASE WHEN date BETWEEN '2019-01-01' AND '2019-12-31' THEN `index` ELSE null END AS `2019`,
CASE WHEN date BETWEEN '2020-01-01' AND '2020-12-31' THEN `index` ELSE null END AS `2020`,
CASE WHEN date BETWEEN '2021-01-01' AND '2021-12-31' THEN `index` ELSE null END AS `2021`
FROM `index`
WHERE id_uin = 4 and id_status = 5
GROUP BY `2018`, `2019`, `2020`, `2021`) as t;
это рабочий вариант
далее на серверном языке, explode(SEPARATOR ';')