How can I set external display as primary and turn off internal display without connected MagSafe power cable?
Unfortunately, according to the Apple support website, this is intended behavior. MacBooks do not support video output to external displays when running on battery power - you'll need to plug in the MagSafe cable.