So a couple things:

I don’t think that would be considered ZSL, just generalization. There’s room for debate here, but in general it’s not zero shot unless you’re evaluating it on a task that is meaningfully different in some way from the one it was trained on. NLI -> topic classification is a pretty big shift, MNLI -> SNLI is much less so.
I was perhaps being too simple when I said "it predicts one of three labels: contradiction ,  neutral , and  entailment". The NLI classifier outputs a distribution over three values. Those values are logits corresponding to the labels contradiction ,  neutral , and  entailment, but the model doesn’t see those words, we just know them. So there’s not really a way to “change” the labels. The output of the NLI model is just a vector.