Your problem is caused by mysql timestamps being different to unix timestamps.
A unix timestamp is the number of seconds since the start of the unix epoch - midnight on Jan 1st, 1970. As this is an integer (number of seconds), you can do things like add an hour (+3600) or subtract a day.
A mysql timestamp is more readable, but less usable. It's the date in the format YYYYMMDDHHMMSS (ie reverse polish notation). To subtract an hour, you'd need to decrement the HH bit and possiby the DD bit too.
To get a mysql query to give you a unix timestamp, you can use the UNIX_TIMESTAMP mysql function
SELECT UNIX_TIMESTAMP(point_interval) AS unix_interval FROM cms_users WHERE 1
similarly, you should be able to use this function to get all the records from the last hour. Using your query with the function gives
UPDATE cms_users SET user_points = user_points+1 WHERE username= '$username' AND UNIX_TIMESTAMP(point_interval) < UNIX_TIMESTAMP(NOW()) - 3600
although i'm not entirely sure about that very last bit without checking...
hope that helps
adam