全てを除外(**)してから、必要なもの(mymoduledir/**)だけ含めつつも、不要物(**/__pycache__/**)は取り除く("!**/__pycache__/**")のが王道、なのかな?
serverless.yml
package:
exclude:
- "**"
include:
- mymoduledir/**
- "!**/__pycache__/**"
ちなみに、pip モジュールのパッケージングにはserverless-python-requirementsを利用しているので、自動生成される .requirements.zip と unzip_requirements.py などは設定にかかわらず追加されます。
※ 油断して .git/ や .venv/ がパッケージに含まれていた事は内緒ですよ。