O comando mysqldump não retorna nada, que é canalizado através de gzip e termina em um arquivo gzip vazio. Veja:
$ echo -n "" | gzip -9 > test.gz
$ stat -c %s test.gz
20
Isso resulta em um arquivo com tamanho 20 bytes. Portanto, o problema é o comando mysqldump . Como o crontab do root é executado, o script é executado com privilégios de raiz. sudo não é necessário. Use-o sem sudo . Apenas:
/opt/rh/mysql55/root/usr/bin/mysqldump --defaults-extra-file=$configFile $db_name | gzip -9 > $backup_path/$db_name-$date.sql.gz