It is a well-known fact that closed convex sets in Banach spaces are weakly closed. The common proof is based on the Hahn-Banach theorem that uses the axiom of choice. Is there any proof of this fact that avoids the axiom of choice and uses only ZF?
Of course not.
The Hahn–Banach is equivalent to the assertion that $X^*$ is nontrivial for any nontrivial Banach space (or normed space, if you prefer).
This means that if HB fails, there is a nontrivial Banach space $X$ whose weak topology is indiscrete, and in particular no set (other than $X$ and $\varnothing$) is weakly closed.