This uses some nice properties of $\epsilon$. Let $Y_{ni}$ be iid and take on values in $\{0,1,2,\ldots\}$ with respective probabilities $\{p_0,p_1,\ldots\}$. Then the branching process looks something like $X_n=\sum_{i=1}^{X_{n-1}}Y_{ni}$ where by convention the sum is zero if $X_{n-1}=0$.
Conditioning on $Z_{n-1}$ effectively determines $X_{n-1}$, so that
$\mathbb{E}[Z_n|Z_{n-1}]= \mathbb{E}[\epsilon^{\sum_{i=1}^{X_{n-1}}Y_{ni}}|Z_{n-1}]=\mathbb{E}[\epsilon^{Y_{n1}}]^{X_{n-1}}$
where I used independence of $Y_{ni}$ and that $X_{n-1}$ is determined by $Z_{n-1}$ to get rid of conditioning. So we need to show $\mathbb{E}[\epsilon^{Y_{n1}}]=\epsilon$ for this to be a martingale. Notice that we can explicitely write:
$\mathbb{E}[\epsilon^{Y_{n1}}]=\sum_{k=0}^\infty \epsilon^kp_k$
Call $D$ the event that extinction occurs. Notice that for $D$ to occur every single subtree has to die for each first generation member. So we should look at what happens for $X_1=k$ for all $k$. If $k=0$ then extinction has occured. We write,
$\epsilon:=P(D|X_0=1)\\
=\sum_{k=0}^\infty P(D\cap (X_1=k)|X_0=1)\\
=\sum_{k=0}^\infty P(D|X_1=k \cap X_0=1)P(X_1=k|X_0=1)\\
=\sum_{k=0}^\infty \epsilon^kp_k$
where we used a number of facts: $P(A\cap B|C) = P(A| B\cap C)P(B|C)$ and the fact that extinction probability at the first level is the same as the zeroth level. More precisely, if we have $X_1\geq 1$, then the Galton Watson process started on the $X_1$ subtree is independent of what happened in $X_0$. In short, the Galton Watson process is Markov in that conditioning on the past reduces to just what the previous generation was at.