Language is non-empty is recursively enumerable (intuitive way)
A language $L$ is partially computable if there is a machine $M$ that on input $x$:


If $x \in L$ then $M$ halts.
If $x \notin L$ then $M$ doesn't halt.


This is equivalent to the other definitions.

To answer your question, what we do is to run the input machine $M$ on all inputs in parallel. If it never accepts on any input, then we never halt, but that's ok.

In order to run $M$ on all inputs in parallel, we use the technique of dovetailing:


We run $M$ for one step on the first input.
We run $M$ for one step on the first two inputs.
We run $M$ for one step on the first three inputs.
And so on.