How to split field and run sub query using it?
select t1.id, t1.list
from t1
left join t2 on locate(t2.vals, t1.list)
group by t1.id, t1.list
having 0 = count(t2.vals);


fiddle

In more complex case (when a token in list may contain a token as a substring) you may use

select t1.id, t1.list
from t1
left join t2 on locate(concat(':',t2.vals,':'), concat(':',t1.list,':'))
group by t1.id, t1.list
having 0 = count(t2.vals);