This shortcode will display the default text (“0”) when the user ID cannot be determined (user not logged in) or when there is no data in the ranking for that user (user is not a player in the pool).
Since you mention that the ranking is correct, I would guess that the user is the problem.
Can you check if [fp-user-score text="test"] also displays “0”? If so, then there is actually “0” returned from the ranking. If “test” is shown, then we know that either the user is not known as a pool player or there is no data for that user in the ranking table.