i'm not sure if i understood, so if it wasn't clear: "M' rejects" means that we DEFINE M' to reject. it was our decision to reject, and we chose it because it turns out it works in the proof. Notice the "Intro" to the solution: "we want to define f(<M,w>) = M', such that M' on input x works as follows:…". this means that we are now defining M'. it was not given to us, we are now creating it.

As far as the second half of you question: in every case such that k>=4, the word "abc" will "sneak past" the test in steps 1,2 and will be accepted by M_abc, and therefore L(M') will not be empty. so yes, most of the times there will be a case of accepting.

Note: by "most of the times" i mean that we can find infinite tuples <M,w> such that M does halt on w, but after more that 4 steps. just as an example, here is a set of TM's that will halt on any w after more the 4 steps: {Mi | Mi runs i steps and than accepts AND i>4}. (notice these TM's don't even look at w)

well, i have no idea if i answered your question. but we can keep trying