Comments are correct - gdalwarp, gdaltranslate etc. are running as EXEs sourced through your path variable - they are successfully importing the gdal and other modules, but via DLL files they reference (as opposed to the osgeo Python specific folder/module).
Depending on your installation, you should have either a GDAL or OSGEO folder that contains a sub-folder named "apps" - this is where these programs got placed on my install, anyway.
The "gdal_calc" command is calling the python script of the same name - line 51 in that is referenced in your error message (from osgeo import gdal).
To fix this, find out which "osgeo" folder has the Python modules (there are likely several folders with the name osgeo) - do this by finding the one that has the "init.py" file inside it. It should also have a "gdal.py" file, "ogr.py" file, and a "_gdal.pyd" file in there too. This osgeo folder is the most important, because it is the Python module from which you can import gdal, ogr, and osr.
Go into System->Environments... and either add the folder ABOVE the osgeo module to your Path variable, or else include the following command in your script, and it should run fine (note that the module here is where it appears on my system, yours will be slightly different):
sys.path.append(r'C:\Program Files (x86)\GDAL\gdal\python')
Then your os.system('gdal_calc...') command should run fine. But with the environment variable change, it'll be permanent and you won't have to manually repath to those Python modules every time you need to use them.