Que tal
awk -F\; '
NR==FNR {
if (a[$1]=="") {
a[$1]="\""$2
} else {
a[$1]=a[$1]"|"$2
}
next;
}
{
print $0 a[$5] "\""
}
' file1 file2 > file3
Nota: isso pressupõe que exista pelo menos uma correspondência para cada ID. Caso contrário, você provavelmente obterá uma cotação de fechamento curta. Se isso é um problema, você poderia adicionar um teste para não-vazio de a[$5]
antes de imprimir.