The first few terms are 1, 2, 10, 410, 2690010, ...

The main idea is to use various substitutions to try and
reduce the complexity of the recurrence relation to
something manageable.

After a bit of fiddling, you may come up with the following. Let:

b_{n} = 2^{n+1}a_{n}

From this definition, b_{0} = 2, and the first few terms
are 2, 8, 80, 6560, ...

Substituting into the recurrence relation yields:

b_{n+1}/2^{n+2} = b_{n}/2^{n+1} + 2^{n}b_{n}^{2}/2^{2n+2}

which simplifies to:

b_{n+1} = 2b_{n} + b_{n}^{2} = (b_{n} + 1)^{2} - 1

Hence:

b_{n+1} + 1 = ((b_{n} + 1)^{2}

This suggests defining:

c_{n} = b_{n} + 1

yielding:

c_{0} = 3

c_{n+1} = c_{n}^{2}

The first few terms of the c sequence are 3, 9, 81, 6561, ...
which look suspiciously like powers of 3.
We conjecture that:

c_{n} = 3^{2n}

And we can verify this since:

c_{0} = 3^{20} = 3^{1} = 3

c_{n+1} = 3^{2n+1} = 3^{2n + 2n}
= 3^{2n}3^{2n} = c_{n}c_{n} = c_{n}^{2}

By backwards substitution, we get the desired closed form expression:

a_{n} = (3^{2n} - 1) / 2^{n+1}