Seu problema é o regex. /^./
corresponderá a qualquer caractere válido no início da linha. Você deve escapar .
para corresponder literalmente:
awk '$1 ~ /^\./ {$1 = "chr:"$2":"$3};1' filename > newfilename
Mas é melhor verificar a string igual em vez de verificar a regex:
awk '$1 == "." {$1 = "chr:"$2":"$3};1' filename > newfilename