Su consulta se traduce en
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
Solo devolverá los resultados que coincidan.
Una forma de solucionarlo evitando la complejidad sería cambiando el tipo de datos a SET
.Entonces podría usar, FIND_IN_SET
SELECT * FROM table WHERE FIND_IN_SET('1', id);