this result:
| ID | VAL1 | VAL2 | VAL3 |   VAL4 |   VAL5 |   VAL6 |
|----|------|------|------|--------|--------|--------|
|  1 |    x |   aa |   bb |     cc | (null) | (null) |
|  4 |    y |   ww |   ee | (null) | (null) | (null) |
|  6 |    z |   hh |   tt |     uu |     pp |     oo |
from this query:
SELECT
      MIN(id)                                AS id
    , col1                                   AS val1
    , MAX(CASE WHEN colno = 1 THEN col2 END) AS val2
    , MAX(CASE WHEN colno = 2 THEN col2 END) AS val3
    , MAX(CASE WHEN colno = 3 THEN col2 END) AS val4
    , MAX(CASE WHEN colno = 4 THEN col2 END) AS val5
    , MAX(CASE WHEN colno = 5 THEN col2 END) AS val6
FROM (
      SELECT
               @row_num :=IF(@prev_value = t.col1, @row_num + 1,1) AS colno
             , t.id
             , t.col1
             , t.col2
             , @prev_value := t.col1 as pv
      FROM Table1 t
      CROSS JOIN(SELECT @row_num := 1 x, @prev_value :='' y) vars
      ORDER BY t.col1, t.id ASC
      ) sq
GROUP BY
      col1
ORDER BY
      col1
;
But you should note that sites such as this are not places where we just cough up finished work for you for nothing. You are supposed to demonstrate what you have tried at the very least. Claiming urgency isn't helpful, those who provide answers also have work to do and this is entirely voluntary.
Please prepare your next question with some evidence of research and an attempted query.