In principe heeft mysql een variabele rijlengte zolang men de rij niet per tabelniveau verandert. Dus lege cols zullen geen ruimte innemen (nou ja, bijna).
Maar met blobs of tekstkolommen is het misschien beter om die te normaliseren, omdat deze grote gegevens kunnen bevatten om op te slaan en deze elke keer dat een tabel wordt gescand, moet worden gelezen / overgeslagen. Zelfs als de kolom niet in de resultatenset staat en u query's uitvoert buiten een index, zal het tijd kosten voor een groot aantal rijen.
Als een goede gewoonte denk ik dat het snel zal zijn om alle administratieve en vaak gebruikte cols in één tabel te zetten en de rest te normaliseren. Een soort "verticaal" ontwerp zoals in uw tweede voorbeeld zal moeilijk te lezen zijn en zodra u met tijdelijke tabellen werkt, loopt u vroeg of laat tegen prestatieproblemen aan.