PERFORM
la requête ignore les résultats. array_append
ne met pas à jour le tableau que vous spécifiez dans le premier paramètre. Il ne lit que ses valeurs.
Vous devriez changer votre code en :
select array_append (arrayA::integer[],id) into v_arrayA;