I use SharePoint 2013 with the following code:
SPListItem listItem;
...
listItem["MyCol"] = " "; // Space character.
Console.WriteLine($"listItem[\"MyCol\"] = {listItem["MyCol"]}"); // Here i see the space character.
listItem.Update();
Console.WriteLine($"listItem[\"MyCol\"] = {listItem["MyCol"]}"); // Here value is became null.
Looks like issue reproduces only for space character.