Help me understand the stages involved in filtering a signal using Discrete Fourier Transform
A purely real time domain signal has a frequency transform such that positive and negative frequencies are complex conjugated of one another.  If you are scaling the positive bin, but not the negative, you are implementing a complex filter kernel, resulting in a complex output.

Side note, you can’t just change the magnitude of a frequency bin in a frame and do an inverse transform in real time processing.  The phases of adjacent bins won’t line up.  This is a more advanced topic beyond the scope of your question.