The Hamiltonian of General Relativity in the ADM formalism can be written as
$$ H(q_{ab}, \pi^{ab}; N, N_a) = \intop_{\Sigma} d^3 x \left( N(x) C(q_{ab}(x), \pi^{ab}(x)) + N^{a}(x) C_{a}(q_{ab}(x), \pi^{ab}(x)) \right), $$
where:
- $q_{ab}(x)$ is the 3-metric on the spatial slice $\Sigma$,
- $\pi^{ab}$ is the canonical conjugate to $q_{ab}$ (which is a densitized tensor field in $\Sigma$)
- $N(x)$ and $N_{a}(x)$ are Lagrange multiplier fields called lapse and shift respectively, which enter the expression for the spacetime metric $g_{\mu \nu}(x, t=0)$ alongside $q_{ab}$; being Lagrange multipliers they don't have canonical conjugates by definition (or we can say that $P_N = P_{N_a} = 0$ is a first-class constraint).
The constraints are given by:
$$ C_a (q_{ab}, \pi^{ab}) = - 2 D_{b} \pi^{ab}, $$
$$ C(q_{ab}, \pi^{ab}) = \frac{1}{\sqrt{\det q}} \left( \left( q_{ac} q_{bd} - \frac{1}{2} q_{ab} q_{cd} \right) \pi^{ab} \pi^{cd} - \det q \cdot R(q) \right). $$
When we say that $H = 0$ for General Relativity what we mean is that $H = 0$ follows from the equations of motion, which are Einstein's equations. This can be seen easily, as variating the action with respect to $N$ and $N^a$ gives
$$ C(x) = C_a (x) = 0. $$
This is an equation of motion. It follows from Einstein's equations. It is a requirement that $N, N^a, q_{qb}, p^{ab}$ have to satisfy in order to qualify as a solution of Einstein's equations.
So yes, the Hamiltonian of GR is zero. But this is only true on shell. Off-shell Poisson brackets with the Hamiltonian still determine the physical evolution of observables:
$$ \frac{d}{dt} f(t, x) = \frac{\partial}{\partial t} f(t, x) + \left\{ f(t, x),\; H \right\}. $$
The odd thing about this though is that it depends on the choice of $N(x)$ and $N^{a}(x)$, which are unphysical. It turns out there's a good reason for this dependence: by choosing different $N$ and $N_a$ we can pass between different spacetime coordinate systems!
As an example of a reasonable gauge-fixing condition, consider
$$ N_a(x) = 0; N(x) = 1. $$
This corresponds to the spacetime coordinate system, in which $\Sigma$ is fixed in time, and the coordinate time $t$ is chosen to describe the physical time flow. In this gauge the Hamiltonian is equal to
$$ H = \intop_{\Sigma} d^3 x C(q_{ab}(x), \pi^{ab}(x)) = $$
$$ = \intop_{\Sigma} d^3 x \frac{1}{\sqrt{\det q}} \left( \left( q_{ac} q_{bd} - \frac{1}{2} q_{ab} q_{cd} \right) \pi^{ab} \pi^{cd} - \det q \cdot R(q) \right), $$
which is not invariant under coordinate transformations as we've already fixed the gauge.
It still vanishes on-shell (when equations of motion are imposed), but provides time evolution of physical observables when we take Poisson brackets off-shell:
$$ \frac{d}{dt} f(t, x) = \frac{\partial}{\partial t} f(t, x) + \left\{ f(t, x),\; H \right\}. $$
An important question is whether the constraints generate 4-dimensional diffeomorphisms on the phase space. Short answer: this is only valid on-shell, i.e. on the equations of motion.