It reflects a 'deviation from the expected rank' of the gene. The 'expected rank' is computed by using a random input of genes for the given gene-set. For each of your genes, their respective Z-scores are then obtained via the standard deviation by comparing the actual to the expected ranks.

We first compute enrichment using the Fisher exact test for many
random input gene lists in order to compute a mean rank and standard
deviation from the expected rank for each term in each gene-set
library. Then, using a lookup table of expected ranks with their
variances, we compute a z-score for deviation from this expected rank,
this can be a new corrected score for ranking terms.

*[source: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-14-128]*

With a negative value, it indicates that it's rank is 'below' that expected. I think that any deviation (positive or negative) should be interpreted generally in the same way. The larger the absolute Z-score, the larger the deviation from the expected value.

I put 'below' in apostrophes because, mathematically, a lower numerical value actually reflects a higher rank (e.g. 1 is a higher rank than 3, but 1 is less than 3 numerically). I don't know exactly how the authors encoded it.

Kevin