Uma solução alternativa seria forçar um cálculo usando um evento de alteração da planilha.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Hyperlinks.Count > 0 Then Application.CalculateFull
End Sub
E, claro, você pode remover o Application.Volatile
do UDF.
O UDF parece ser acionado pela mudança em A1, que é esperada desde que A1 seja referenciado no argumento. Mas, no momento em que é executado, a coleção Hyperlinks ainda não foi atualizada. E, se você tiver um ponto de interrupção, poderá observar que o cursor ainda está na barra de fórmulas. Talvez tenha a ver com o modo como os hiperlinks são armazenados e referenciados.