I see two ways of doing this:
1. Rather than using PHP to write directly to CSS files (which could cause cache issues), you could generate separate <style> tags for the media rules and insert these in the <head>. For example:
<style media="screen and (max-width: 800px)">
// CSS
</style>
2. You could create a PHP script to dynamically create a concatenated CSS file. Chris Coyer’s site WP-Mix has a good code snippet to get you started: http://wp-mix.com/combine-compress-css-files-php/