awk approach:
awk 'BEGIN{OFS="\t"; print "pos" OFS "COL1"; colname[1]="COL1"; colname[2]="COL2"; colname[3]="COL3";}NR>1{for(i=2;i<=NF;i++) print $1, colname[i-1], $i}' real2.txt
The output:
pos COL1
18691441 COL1 C
18691441 COL2 A
18691441 COL3 G
18691572 COL1 G
18691572 COL2 C
18691572 COL3 G
18691620 COL1 A
18691620 COL2 T
18691620 COL3 G
18691716 COL1 C
18691716 COL2 G
18691716 COL3 C
OFS="\t" - output field separator
print "pos" OFS "COL1" - prints header line
NR>1 - start processing from 2nd line
for(i=2;i<=NF;i++) print $1, colname[i-1], $i - printing each column (COL...) value "rowwise" regarding to respective pos column value and its corresponding column name.