This is a case of relational division. Two example query techniques to get what you want:
SELECT user_id
FROM tbl
WHERE question_id = 1
AND body = 'Text1 1'
INTERSECT
SELECT user_id
FROM tbl
WHERE question_id = 2
AND body = 'Text1 2';
Or:
SELECT t1.user_id
FROM tbl t1
JOIN tbl t2 USING (user_id)
WHERE t1.question_id = 1
AND t1.body = 'Text1 1'
AND t2.question_id = 2
AND t2.body = 'Text1 2';
Find many more under this related question:
How to filter SQL results in a has-many-through relation
crosstab()
from the additional module tablefunc is just a way to display your data in a modified way. But you are looking for a query technique. It's not a display issue.
You can find many examples for crosstab()
here on SO, too, with a search like this one.