The following worked for me and should hopefully help:
$ tree test/
test/
├── test1
│ └── a.txt
├── test2
│ └── b.txt
└── test3
└── c.txt
$ rclone sync --dry-run --verbose --fast-list -P --filter='- /{test1,test2}/' test/ B2:mybucket/test/
2019-05-30 08:40:00 INFO : B2 bucket mybucket path test/: Waiting for checks to finish
2019-05-30 08:40:00 INFO : B2 bucket mybucket path test/: Waiting for transfers to finish
2019-05-30 08:40:00 NOTICE: test3/c.txt: Not copying as --dry-run
2019-05-30 08:40:00 INFO : Waiting for deletions to finish
Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
Errors: 0
Checks: 0 / 0, -
Transferred: 1 / 1, 100%
Elapsed time: 1.4s
2019/05/30 08:40:00 INFO :
Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
Errors: 0
Checks: 0 / 0, -
Transferred: 1 / 1, 100%
Elapsed time: 1.4s
As you can see, only test3/c.txt
was going to be transferred, as desired.