Hm. That should have worked. Is your /admin/ folder physically located inside your root folder? That is, assuming your typical shared-hosting setup:
If instead it's something like
then requests for /admin/ will never "see" the root-level htaccess. But I have to assume that /admin/ is inside your main directory, because otherwise it would never get redirected. Unless-- whoops!-- your host also has a with/without www redirect option (look in the control panel, by whatever name) and you've also set a preference there. Better go double-check. While you're at it, see if you've got any other access preferences set at this level. No point in tearing out your hair if things are happening in the config file before they ever reach your own htaccess.