Besides the first answer that I have not tested, and therefore I have no opinion that others will fail in the following cases:
1- tags = "tag1,tag2,tag22,tag3"
2- tags = "tag2,tag1,tag3"
in the first example, the REPLACE function (tags, 'tag2', '') will remove the third comma-separated value, that is, tag22, and in the second example, tag2 will not be replaced by REPLACE (with tags, ', tag2', '')
One possible solution could be:
REPLACE(REPLACE(CONCAT(',', tags, ','), 'tag2', ''), ',,', ',')
, , . .