Váš dotaz se překládá do
SELECT * FROM table WHERE id='1' or id='2' or id='3' or id='4';
Vrátí pouze výsledky, které mu odpovídají.
Jedním ze způsobů, jak to vyřešit a vyhnout se složitosti, by bylo změnit datový typ na SET
.Potom můžete použít FIND_IN_SET
SELECT * FROM table WHERE FIND_IN_SET('1', id);