If the response is real you need not convert it to complex in order to compute the magnitude, but the process is correct for complex and real number since the abs function will use complex conjugate product prior to taking the square root. If it was real, there would be a trivial phase response since the phase would always be 0 degrees. This would not be a ...
That purple array is giving the impulse response over time. You can get it directly from the difference equation. Assume initial rest, $y[-1]=0$, then write out the impulse response for $n=0, 1, 2, ...$. If you do that you will get:
h &= 0 + 0.5 \\
h &= 0 + 0.25 \\
h &= 0 + 0.125 \\