pipefail não impede que o lado direito do pipeline seja executado, todo o tubo é executado simultaneamente, como de costume. Experimente, por exemplo
$ set -o pipefail
$ false | echo foo
foo
É o uso de xargs que pode ou não impedir a execução de apt aqui, se não receber entrada. Sem -r ou -I , ele ainda executaria o comando pelo menos uma vez.
Mas você poderia contornar isso capturando a saída com uma substituição de comando e executando apt ou não, com base no resultado:
if packages=$(somecmd...) && [ "$packages" ] ; then
set -f
sudo apt install $packages
fi
Nomes de pacotes não devem ter espaços em branco, portanto, usar $packages não-citado deve funcionar (assumindo o valor padrão $IFS ; eles provavelmente não podem conter caracteres glob, portanto set -f pode ser desnecessário).