There exist meager subsets of $\mathbb{R}$ whose complements have Lebesgue measure zero

Yes, your proof is right. You need to prove that $E^c$ is meager.

Since $E_n$ is open, $E_n^c$ is closed. $E_n$ is dense in $\Bbb{R}$ for $\Bbb{Q}\subset E_n$. Thus $E_n^c$ is nowhere dense. So $E^c=\bigcup_{n=1}^{\infty}E_n^c$ is meager.