Your issue seems to be with too loose logic check, rather than saving.
To treat valid but falsy value correctly you need something like this:
if ( false !== $meta_value )
This will strictly match only the case when value doesn’t contain false
(return of the API when fetch failed).