Creo que la mejor respuesta a este problema está en el siguiente enlace ¿Cuál es la mejor manera de eliminar el valor del campo SET?
la consulta debe ser así, que cubre el valor o el valor, o solo el valor en la columna separada por comas
UPDATE yourtable SET categories = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', col, ','), ',2,', ',')) WHERE FIND_IN_SET('2', categories)
Aquí puede tener su condición en la cláusula where. para obtener más detalles, consulte el enlace anterior.