Why would you need the calculation field to be "global"? Try a straight, stored, indexed calculation field.
It must work.
I suggest to check if in the table one you have created at least one record because otherwise the value of the global field is not calculated and remain empty.
Yeah, there are records present.
I have no specific need to create a global field, it's just how I've done it in the past. Regardless of the reasoning behind why, it's really strange behavior.