[Nexus 7 (2013) Q&A] mdamaged:
Ok, I decided to use a laptop which has never had my N7 attached to it as MTP, only as adb for wugs (before I got comfortable with doing things manually), I had the same problem you did, this is what fixed it. I had used koushes adb driver installer on it, so his driver kept intercepting it.

First I got these drivers and unpacked them: http://developer.android.com/sdk/win-usb.html#

Then I plugged in my device, with PTP enabled and updated drivers and browsed to those drivers and let it install...this did not fix it.

Disable usb debugging, plug it in, enable MTP, then go into device manager, then go into the menu and show all devices, you should see something like Google ADB driver, right-click and uninstall it, selecting delete driver checkbox, then reboot your nexus 7 while still plugged in, it should redetect your N7 as a "Nexus 7" and you should see it in Computer as a Portable Media Player, then unplug the device, wait 3-4 seconds to make sure its unmounted, then plug it back in, you should now actually see files.

NOW, once I saw that that worked, I noticed PTP stopped working, leave it plugged in, switch to PTP. then you will see the ADB driver back, uninstall it again, reboot the device leaving it plugged in, it will redetect the device again, it will say MTP again even though it's in PTP, let it finish, then unplug the device, wait a few seconds, and plug it back in, now you should be able to see it connected as a camera, and should be able to see files, now I can switch PTP ro MTP and back again with debugging off resulting in it working fine.

NOTE: USB debugging only works right in PTP mode for me.. which is fine, I tested to make sure that once debugging was off, I can unplug the device, and plug it back in and I can still switch between MTP and PTP perfectly.

EDIT: Actually I am now going to try leaving debugging enabled, in MTP mode, uninstall the ADB driver and reboot the device and see if that fixes that problem too.

EDIT2: AND IT WORKED!

So now I can have debugging on and off, in MTP and PTP mode, adb devices works perfect for either mode.

In summary, i think the REAL trick here is to put the device in each mode combination one at a time, delete the device and driver from device manager and reboot the device while it's still plugged in, then unplug the device and plug it back in, you do this for every combo outlined below, a total of rebooting and unplugging/plugging in the device 3 times...because PTP+debug on or off worked already

MTP on - Debugging off - find entry in device manager, uninstall it, reboot device, leaving it plugged in, verify it shows in Computer, unplug device, wait 3-4 seconds plug device back in, verify you can see files.

PTP on - Debugging off - find entry in device manager, uninstall it, reboot device, leaving it plugged in, verify it shows in Computer, unplug device, wait 3-4 seconds plug device back in, verify you can see files.

MTP on - Debugging on - find entry in device manager, uninstall it, reboot device, leaving it plugged in, verify it shows in Computer, unplug device, wait 3-4 seconds plug device back in, verify you can see files.

..at the end you should be able to have MTP and PTP fully working with or without debugging on.