You need to work out, or indicate whether the 500 error is from Apache or Django.
Use:
LogLevel info
not "warn", so you can see whether mod_wsgi is even loading your WSGI script file or whether you issue is with your Apache configuration.
If it is loading the Django application, then temporarily enable DEBUG in Django settings file so that Django reports the error in the browser. This is necessary as Django will not log errors to the log unless you have set up Django logging to do that.
If you believe the Apache configuration is fine, replace the WSGI script file with a WSGI hello world application instead of Django to see if you get a response from that.
def application(environ, start_response):
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
Finally, you also are putting the config in Apache config in the wrong place.
The LoadModule line should go after other LoadModule lines.
The mod_wsgi configuration directives would then usually go at the end of the configuration, or inside the VirtualHost the need to apply to if one is defined. I am actually surprised that Apache even starts with where you have put the configuration.