Resumindo - use JSONB em vez de JSON ou converta JSON para JSONB.
Você não pode comparar valores json. Você pode comparar valores de texto em vez disso:
SELECT *
FROM movie_test
WHERE tags::text = '["dramatic","women","political"]'
Observe, no entanto, que os valores do tipo JSON são armazenados como texto em um formato no qual são fornecidos. Assim, o resultado da comparação depende se você aplica consistentemente o mesmo formato:
SELECT
'["dramatic" ,"women", "political"]'::json::text =
'["dramatic","women","political"]'::json::text -- yields false!
No Postgres 9.4+ você pode resolver esse problema usando o tipo JSONB, que é armazenado em um formato binário decomposto. Valores deste tipo podem ser comparados:
SELECT
'["dramatic" ,"women", "political"]'::jsonb =
'["dramatic","women","political"]'::jsonb -- yields true
então esta consulta é muito mais confiável:
SELECT *
FROM movie_test
WHERE tags::jsonb = '["dramatic","women","political"]'::jsonb
Leia mais sobre tipos JSON.