It looks like the "!local" filter does not work in your case, you are marking local packets to use ISP, so they get lost in the internet. Try to add those mangle rules at the beginning of the mangle list.
/ip firewall mangle add chain=prerouting dst-address=192.168.1.0/24 action=accept add chain=prerouting dst-address=192.168.3.0/24 action=accept
That will force local packets to leave the mangle list, so they won't be marked.