Если вы делаете
cmd1 | cmd2 …
затем 
cmd 1 и 
cmd 2 работают более или менее одновременно. 
Если у вас многопроцессорная система, они могут работать одновременно. 
Но в любом случае они будут выполняться одновременно, причем точное планирование будет определяться слишком сложными факторами, чтобы их можно было прогнозировать.
Ваш cmd1 - это gzip -cN "$1" > "$1.gz" а ваш cmd2 - это ls -l "$1.gz" . 
Следовательно, ls может запуститься до того, как gzip создаст файл "$1.gz" .
ls не читает со своего стандартного ввода, поэтому добавление в него смысла не имеет. 
Вы, вероятно, хотите сделать
gzip -cN "$1" > "$1.gz"  &&  ls -l "$1.gz" | awk '{print $5}'
то есть, запустите 
gzip , а затем, если это удастся, запустите 
ls -l .