One sufficient condition for $\{P_1,\dots, P_{M_n}\}\subset \operatorname{Hull}\{P_{Y^n|X^n=x^n}| x^n\in \mathcal{X}^n\}$ is that for each $m,\ \ell\neq m$ then with $Y_m\sim P_m$ and $c>0$, $$\mathbb{P}(P_m(Y_m) \leq c\cdot P_{\ell}(Y_m))=\mathcal{o}(1/M_n).$$
Then this will be a working decoder: "Decide $m$ was sent if $\mathbb{P}(P_m(Y_m)>c\cdot P_{\ell}(Y_m))$ for each $\ell\neq m$." For $c=1$ this is a maximum likelihood decoder.
This is a kind of unsatisfying answer since I am not convinced that any working codebook must necessarily satisfy this condition for some $c$.