A "functional" definition of simple group?

That definition is not correct. For instance, the group $\mathbb{Z}_2$ is simple, but the identity homomorphism $\mathbb{Z}_2\to\mathbb{Z}_2$ is nonconstant. Or if $G$ is any finite group of odd order, any homomorphism $G\to\mathbb{Z}_2$ is constant, but $G$ need not be simple. The problem is that in contrast with clopen subsets of a topological space, you can't just take a normal subgroup $K\subset G$ and get a homomorphism $G\to\mathbb{Z}_2$ by mapping $K$ to $0$ and every other element of $G$ to $1$. That usually won't be a homomorphism.

A correct "functional" definition of a simple group is that a nontrivial group $G$ is simple if any homomorphism $f:G\to H$ from $G$ to any other group is either injective or trivial (where "trivial" means it sends every element to the identity). Indeed, a homomorphism is injective iff its kernel is the trivial subgroup and trivial iff its kernel is all of $G$, so this is just saying the only normal subgroups of $G$ are the trivial subgroup and $G$.

(Aside: I require $G$ to be nontrivial in this definition because the trivial group is not simple; similarly, the empty topological space is not connected (see https://ncatlab.org/nlab/show/too+simple+to+be+simple). You can avoid stating that $G$ is nontrivial by saying instead that every homomorphism $f:G\to H$ is exactly one of injective and trivial. Similarly, you can fix the definition of connectedness by saying every continuous $f:X\to\{0,1\}$ has exactly one point in its image.)