Ваш скрипт перезаписывает значение в a[$1]
вместо добавления к нему.
Есть много способов добавить вместо. Например:
if ( a[$1] ) a[$1] = a[$1] "," $2; else a[$1] = $2
a[$1] = a[$1] ( a[$1] ? "," : "" ) $2
a[$] = ( a[$1] ? a[$1] "," : "" ) $2
a[$1] = a[$1] ? a[$1] "," $2 : $2
a[$1] = a[$1] "," $2;
# then once at the end:
sub(/^,/,"",a[$1])
Вам также необходимо вставить новый заголовок столбца.
Итак:
awk -F '\t' -v OFS='\t' '
FNR==NR { a[$1] = a[$1] ? a[$1] "," $2 : $2; next }
FNR==1 { print $0, "V4"; next }
{ print $0, a[$2] }
' joj001.txt mia.csv