You're always drawing the upper left pixel of the image into your 1x1 context. You need to either change the origin of the CGRect
you're making to draw the pixel you want in the right location, or set up the current transformation matrix to offset where drawing happens so that the pixel in question lands on the origin of your context.
But you probably shouldn't do either of those, since this is a super inefficient way to get what you want. What are you actually trying to do here? You obviously want the color of a pixel in the image, but for what purpose? Are you iterating over all pixels in the image? If so, you should probably draw the image into a bitmap once, and then use pointer arithmetic to get at the pixel you want to test.
Or if you're trying to in some way modify the pixels, you should use some other tool, such as CoreImage, or OpenGL.