Você não esqueceu de fazer um "ELSE" na instrução case?
UPDATE my_table
SET field = CASE
WHEN id IN (/* true ids */) THEN TRUE
WHEN id IN (/* false ids */) THEN FALSE
ELSE field=field
END
Sem o ELSE, suponho que a cadeia de avaliação pare no último WHEN e execute essa atualização. Além disso, você não está limitando as linhas que está tentando atualizar; se você não fizer o ELSE, você deve pelo menos informar à atualização para atualizar apenas as linhas desejadas e não todas as linhas (como você está fazendo). Veja a cláusula WHERE abaixo:
UPDATE my_table
SET field = CASE
WHEN id IN (/* true ids */) THEN TRUE
WHEN id IN (/* false ids */) THEN FALSE
END
WHERE id in (true ids + false_ids)