Você pode usar esta solução simples:
SELECT DISTINCT
a.id,
b.value AS SIGN_UP,
c.value AS FIRST_NAME,
d.value AS STREET
FROM tbl a
LEFT JOIN tbl b ON a.id = b.id AND b.field_name = 'sign_up'
LEFT JOIN tbl c ON a.id = c.id AND c.field_name = 'first_name'
LEFT JOIN tbl d ON a.id = d.id AND d.field_name = 'street'
Só por segurança, fiz as junções
LEFT JOIN
's porque eu não sei se um id pode ter ausente campos, nesse caso eles aparecerão como NULL
em nossas colunas derivadas. Demonstração do SQL-Fiddle