Extracting positive frequencies of discrete-time signal
The mistake lies in the modulation of the low pass impulse response. The low pass response equals $1$ for $\omega\in(-\pi/2,\pi/2)$ and is zero otherwise, and you want a frequency response that is zero for $\omega\in(-\pi,0)$ and $1$ for $\omega\in(0,\pi)$. Consequently, you need to shift the spectrum by $\pi/2$, and not by $\pi$ as you did. The corresponding impulse response of the system becomes

$$h[n]=\begin{cases}\displaystyle\frac12,&amp;n=0\\\displaystyle\frac12 e^{jn\pi/2}\frac{\sin(n\pi/2)}{n\pi/2},&amp;n\neq 0\end{cases}\tag{1}$$

which can be rewritten as

$$h[n]=\begin{cases}\displaystyle\frac12,&amp;n=0\\\displaystyle0,&amp;n\textrm{ even},n\neq 0\\\displaystyle\frac{j}{n\pi},&amp;n\textrm{ odd}\end{cases}\tag{2}$$

So only the sample at $n=0$ is real-valued, all samples at even indices (other than zero) vanish, and all samples at odd indices are purely imaginary.

Consequently, the real part of the impulse response is just a scaled unit impulse, and its imaginary part is a scaled discrete-time Hilbert transformer:

$$h[n]=\frac12\big(\delta[n]+jg[n]\big)\tag{3}$$

with $g[n]$ the impulse response of an ideal discrete-time Hilbert transformer.