Sorry, I can't replicate that result:
DROP TABLE IF EXISTS eav;
CREATE TABLE eav(id INT NOT NULL,userid INT,title VARCHAR(30),data VARCHAR(30));
INSERT INTO eav VALUES
(1,231,'name','John'),
(2,231,'age','24'),
(3,231,'gender','man'),
(4,232,'name','Pete'),
(5,232,'age','34'),
(6,232,'gender','man');
SELECT userid
, MAX(CASE WHEN title = 'name' THEN data END)name
, MAX(CASE WHEN title = 'age' THEN data END)age
, MAX(CASE WHEN title = 'gender' THEN data END)gender
FROM eav GROUP BY userid;
+--------+------+------+--------+
| userid | name | age | gender |
+--------+------+------+--------+
| 231 | John | 24 | man |
| 232 | Pete | 34 | man |
+--------+------+------+--------+