... ¿tendrás algún error de concepto?
Código sql:
Ver originalSELECT * FROM objetos WHERE id IN(1, 1, 1, 1);
-- Es igual a:
SELECT * FROM objetos WHERE id = 1;
-- y deberá traer TODOS aquellos donde id = 1
-- Entonces:
SELECT * FROM objetos WHERE id IN(1, 1, 2, 3);
-- es igual a:
SELECT * FROM objetos WHERE id = 1 OR id=2 OR id=3;
... hace mucho no manejo SQL

, pero por ahí debe ser. Espero explicarme.
¿Entonces, qué pasa si haces su consulta con OR's?, deberías tener los mismos resultados, ¡porque esos son los resultados!. No tiene ni sentido pasar parámetros repetidos para IN (1, 1, 2, 2).
Un saludo