Una clausola WHERE può guardare solo le colonne di una riga alla volta.
Quindi, se hai bisogno di una condizione che si applica a due diversi righe da una tabella, devi unirti a quella tabella due volte, in modo da poter ottenere colonne da entrambe le righe.
SELECT p.*
FROM "products" AS p
INNER JOIN "custom_field_answers" AS a1 ON p."id" = a1."product_id"
INNER JOIN "custom_field_answers" AS a2 ON p."id" = a1."product_id"
WHERE a1."value" = 'bangle' AND a2."number_value" < 50