How to get the value of column that the same for few rows by selecting values from other columns?
This may work:

SELECT product_attribute.product_id
FROM product_attribute 
WHERE product_attribute.text = 'wi-fi' 
    OR product_attribute.text = 'bluetooth'
GROUP BY product_attribute.product_id
HAVING COUNT(*) = 2;


The idea here is to use an OR in the WHERE clause to allow rows that have either wi-fi or bluetooth in the text column, then we only return products that have at least two rows.

Thanks to @jkavalik for creating a test sqlfiddle that works, and proves the above code!