Похоже, что определение типа контента в GIO основано на расширении файла (при наличии расширения).
$ ./file /bin/sh
application/x-executable
$ cp /bin/sh a.wav
$ ./file a.wav
audio/x-wav
где ./file равно
#!/usr/bin/env python2
import sys, gio
f = gio.File(sys.argv[1])
info = f.query_info('standard::content-type')
print info.get_content_type()