Uma cláusula WHERE só pode ver colunas de uma linha por vez.
Portanto, se você precisar de uma condição que se aplique a dois diferentes linhas de uma tabela, você precisa se juntar a essa tabela duas vezes, para poder obter colunas de ambas as linhas.
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