This question is chapter 5, problem 33 (5.33) from Michael Sisper's Introduction to the Theory of Computation:
Let $S = \{\langle M\rangle | M \text{ is a TM and } L(M) = \{ \langle M\rangle\}\}$. Prove that neither $S$ nor $\overline{S}$ is Turing-recognizable.
I think the statement can be proved via a contradiction. Suppose $S$ is Turing recognizable and let $M$ be a TM recognizing it. Then M accepts all strings $\langle T\rangle$ where $T$ is a TM and $L(T) = \{\langle T\rangle\}$. By the recursion theorem, for any Turing machine $T,$ there exists a Turing machine $Q$ so that $Q(\epsilon)$ behaves the same way as $T(\langle Q\rangle)$. One can use the recursion theorem to justify why a Turing machine can get its own "source code." Perhaps one way to show the desired result would be to use a mapping reduction from a known non Turing-recognizable language, like $E_{TM} := \{\langle M\rangle : L(M) = \emptyset\}$ or $EQ_{TM} := \{\langle M_1, M_2\rangle : L(M_1) = L(M_2)\}$. But I can't think of the details for this.
*
should render italics: Sipser, Michael: Introduction to the Theory of Computation. $\endgroup$