Yes, MissingNo. affects saves, but only the area containing Hall of Fame (I refer to RB MissingNo here, Yellow one is a very different issue).
When encountering any Pokemon in the game, save bank with Hall of Fame data is opened. The reason being that the area just before Hall of Fame used for decoding sprite data (for this reason, Pokemon games with corrupted save RAM don't display any Pokemon or display them incorrectly).
However, MissingNo. sprite causes buffer overflow, and goes beyond the limit of sprite buffer area, overwriting Hall of Fame data. The sprite is constant (read from ROM, not RAM), so it always corrupts the same area of RAM, and there is no risk of it doing something unexpected.
Despite that, the Hall of Fame corruption is actually harmful. If you won't view Hall of Fame (on PC), MissingNo. should be completely safe. However, Hall of Fame has garbage data, which means it can load glitch Pokemon which can have worse effects on RAM (and some of these are loaded from RAM, which means inserting actually pseudo-random data into Hall of Fame). The save bank containing the Hall of Fame data doesn't contain any important data, which means those mons don't have much to corrupt. Although, you are advised to not save after viewing the Hall of Fame, because there is a potential that viewing it corrupted some of actual game RAM (and saving would store those changes in save RAM).
MissingNo. also sets highest bit of sixth item in inventory when seen. This usually increases it by 128, unless it was 128 or higher already. This is because the code to handle seen Pokemon considers Pokemon 0 to be 256, and then goes beyond area of seen Pokemon, accessing the item data.
Garbled sprites after seeing MissingNo. are caused by leaving the flip flag set after decoding the sprite. This normally should never happen, but it did, because MissingNo.'s sprite is not intentional. Seeing a sprite in Pokedex should reset the state of this flag.