Can a TM recognize whether another TM recognizes a non-empty language?
I will use the following definition of $L(M)$: it is the set of inputs for which $M$ halts.

I will use the following definition of recognizable: a language $L$ is recognizable if there exists a Turing machine $M$ such that $L = L(M)$.

In order to recognize $L_1$, on input $\langle M \rangle$, we simulate $M$ on all possible inputs (using dovetailing), and if $M$ halts on any input, we halt.

In order to simulate $M$ on all possible inputs, we list all possible inputs in a sequence $x_1,x_2,\ldots$, and then work as follows:


Initiate a run of $M$ on $x_1$, and advance it one step.
Initiate a run of $M$ on $x_2$, and advance both existing runs by one step each.
Initiate a run of $M$ on $x_3$, and advance all three existing runs by one step each.
And so on.


If $M$ halts on any input, then we will eventually notice it, and then immediately halt. Conversely, if $M$ never halts, then we will also never halt.