I'm trying to make a game where I drag tetris like blocks onto a grid.
When a new piece is dragged onto the board, I'm trying to determine if the game piece is valid in the current location. I have a list of zeroes, which is meant to map which tile are already taken, and which are not. I want to take mouse coordinates and using a known offset, map x/y to the list.
Using the below, I was hoping I could continuously track the mouse position, but the say mouse X only updates once when I click, it isn't continuous.

As mentioned in a comment, your code should work as expected, but only in "production". In development mode, dragging overrides whatever logical behavior you have and repositions the sprite by force, as it were, without triggering events.
If you run in production mode, e.g. by clicking the "view full screen" button in the top right, you'll see the real-time values changing and the say firing.
As an aside, you might try something like this:
when green flag clicked
set drag mode not_draggable
forever:
if mouse_down? and touching mouse_pointer?:
repeat until not mouse_down?:
go to mouse_x, mouse_y
say mouse_x
end
end
end
This way, if the mouse is moved quickly away from the sprite it's dragging, the drag won't break off abruptly.