こんにちは
GIS ソフトにおいて取り扱うラスタデータには
・標高などの数値データ
・土地利用などのカテゴリ値データ
・背景画像などの RGB 色情報データ
・衛星写真などの「ある波長における観測データ」が複数波長分
などがあります。
またベクタデータと同じように、これらのラスタデータに対し、たとえば
・白:0.0 ~ 黒:1000.0 のグラデーション
・各波長における値を、植生などを強調するために本来とは異なる色に割り当て
など、どのように描画するか、 GIS ソフト側でスタイルの設定を行います。
これはどういうことかというと
・透過描画の設定を行えば、現データでも透過した描画は可能
・マスク用のバンドを追加した GeoTIFF であっても、設定が不十分であれば透過されない
となります。
透過の設定は、レイヤプロパティの不透明度から nodata を設定する方法と、透過設定を行う方法があります。
透過設定では、もしマスクバンドがあれば選択するほか、抜き色を指定して透過させる方法もあります。
なお、提示いただいた Python スクリプトについて、手元での確認を行ったわけではありませんが、
スクリプトでは4番目のバンドを追加しただけであり、マスクバンドとして明示して作成しないと、
QGIS に読み込んだ際に、マスクバンドとして自動的に透過設定に使用されないのだと思います。