Summary: There is an uncountably infinite family of $\mathcal{C}^\infty$ functions on $(0, +\infty)$ satisfying this equation, and these functions are also continuous at $x = 0$ if we demand $f(0) = 1$. If we further demand that the function be differentiable at $x = 0$, $f(x)$ must be an exponential: $f(x) = e^{cx}$ for some constant $c$.
Let $g(x): [1,2] \to \mathbb{R}$ be any function satisfying $g(2) = 2g(1)$. Define a function $h(x): [0, +\infty) \to \mathbb{R}$ recursively:
$$
h(x) = \begin{cases} g(x) & 1 < x \leq 2 \\ \frac{1}{2} h(2x) & 0 < x \leq 1 \\ 2 h(x/2) & x > 2 \\ 0 & x = 0
\end{cases}
$$
For example, by this definition
$$
h(3) = 2 h(3/2) = 2 g(3/2)
$$
and
$$
h(3/16) = \frac{1}{2} h(3/8) = \frac{1}{4} h(3/4) = \frac{1}{8} h(3/2) = \frac{1}{8} g(3/2).
$$
The graph of this function would be self-similar:
By construction, $h(2x) = 2 h(x)$ for all $x$. But we can then define $f(x) = e^{h(x)}$; and therefore $f(2x) = e^{h(2x)} = e^{2 h(x)} = (e^{h(x)})^2 = f(x)^2$. Moreover, we have
$$
\lim_{x \to 0_+} h(x) = 0 \quad \Rightarrow \quad \lim_{x \to 0_+} f(x) = 1
$$
and so the function is continuous at $x = 0$.
If you want the function to satisfy any particular derivative conditions, you can also demand that $g^{(n)}(1) = 2^{n-1} g^{(n)}(2)$ for any and all values of $n$ you desire. In particular, you can choose $g$ to be a $\mathcal{C}^{\infty}$ function for which all of the derivatives match at $x = 1$ and $x = 2$, and $f(x)$ will be a $\mathcal{C}^{\infty}$ function as well.
The exponential family of functions you found correspond to choosing $g(x)$ to be a linear function on $[1,2]$. A similar construction can be made to extend $h(x)$ (and thereby $f(x)$) to the negative real numbers as well; the $g(x)$ we choose to construct $f(x)$ on this domain need not be the same function as the one we used for the positive reals. @mfl's answer corresponds to taking $g(x) = x$ for the positive reals and $g(x) = -x$ for the negative reals.
EDIT: After further thought, I'm convinced that even if $g(x)$ is a $\mathcal{C}^n$ function on its domain, the resulting function $h(x)$ will not be $\mathcal{C}^n$ at $x = 0$ unless $n = 0$. This can be seen by noting that we have
$$
h^{(n)}(x) = \begin{cases} g^{(n)}(x) & 1 < x \leq 2 \\ 2^{n-1} h^{(n)}(2x) & 0 < x \leq 1 \\ 2^{1-n} h^{(n)}(x/2) & x > 2 \\ 0 & x = 0
\end{cases}
$$
For $n > 1$, consider the sequence of values $x_m = a/2^m$, with $1<a<2$. It can be seen that $h^{(n)}(x_m) = 2^{m(n-1)} g^{(n)}(a)$. This sequence of values will diverge as $x_m \to 0$, and so the $n$th derivative of $h$ cannot approach a finite value as $x \to 0$. The only exception here is if $g^{(n)}(a) = 0$ for all $a$, i.e., $g(x)$ is a linear function. In this case, the resulting $f(x)$ is an exponential.
For $n = 1$, meanwhile, $h'(x)$ will take on all possible values of $g'(x)$ in every interval containing the origin; and so $h'(x)$ cannot have a well-behaved limit as $x \to 0$ either. The only exception here is if $g'(x)$ is a constant over its domain, in which case we get $f(x)$ as an exponential function as well.