A opção -w retorna correspondências que formam palavras inteiras.
O motivo pelo qual ele retorna ABHD14A-ACY1 e não RPL41 é porque ACY1 está no final da primeira e segunda linhas, enquanto RPL4 não está no início nem no final de nenhuma linha nem é seguido por um caractere constituinte não-palavra que significa algo diferente de letra, número ou sublinhado. Isso é coberto na página man de grep .
Para testar isso, se você adicionar 1 ao final da primeira linha para que seja 1 ABHD14A-ACY11 e remova o 1 do final da sexta linha para que seja 6 RPL4 , sua saída ficará assim :
2 ACY1
5 RPL3
6 RPL4
Não há como não retornar a primeira linha com o comando exato que você tem ou apenas chamando grep por conta própria. Você teria que canalizá-lo para sed para remover a primeira linha:
grep -Fwf list1.txt list2.txt | sed '/ABHD14A/d'
Ou canalize-o em awk para imprimir apenas o que grep retorna após a linha que contém o que você não deseja corresponder:
grep -Fwf list1.txt list2.txt | awk 'NR>1'
Ou canalize-o para grep -v para excluir a primeira linha:
grep -Fwf list1.txt list2.txt | grep -v ^1
Existem outras maneiras de fazer isso, mas essas são as mais fáceis e permitem que você canalize apenas o que você já tem.