Twoje zapytanie jest tłumaczone na
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
Zwróci tylko wyniki, które do niego pasują.
Jednym ze sposobów rozwiązania tego problemu jest zmiana typu danych na SET
.W takim razie możesz użyć ZNAJDŹ_IN_SET
SELECT * FROM table WHERE FIND_IN_SET('1', id);