The following untested code may work. Untested as I don't have a device which inverts the logic.
Change the baud rate to suit.
#!/usr/bin/env python
# serial_invert.py
# 2016-03-18
# Public Domain
import time
import pigpio # http://abyz.me.uk/rpi/pigpio/python.html
RXD=15
pi = pigpio.pi()
if not pi.connected:
exit(0)
pigpio.exceptions = False # Ignore error if already set as bit bang read.
pi.bb_serial_read_open(RXD, 9600) # Set baud rate here.
pigpio.exceptions = True
pi.bb_serial_invert(RXD, 1) # Invert line logic.
stop = time.time() + 60.0
while time.time() < stop:
(count, data) = pi.bb_serial_read(RXD)
if count:
print(data)
time.sleep(0.2)
pi.bb_serial_read_close(RXD)
pi.stop()
EDITED TO ADD
I added an inverter between the TXD and RXD GPIO so I could test the code.
The following shows RXD is the inverse of TXD.

The received data is interpreted as gibberish until the line logic is inverted (slri command)
$ pigs slro 15 9600 8 # Open RXD for bit bang serial read.
$ echo "Hello" >/dev/ttyAMA0
$ pigs slr 15 100
14 171 211 210 82 42 235 0 171 211 210 82 42 235 0 # Gibberish
$ echo "Hello" >/dev/ttyAMA0
$ echo "Hello" >/dev/ttyAMA0
$ pigs -a slr 15 100
21 \xab\xd3\xd2R*\xeb\x00\xab\xd3\xd2R*\xeb\x00\xab\xd3 # Gibberish
$ pigs slri 15 1 # Now invert line logic.
$ echo "Hello" >/dev/ttyAMA0
$ pigs -a slr 15 100
7 Hello\x0d\x0a
$ echo "The lazy brown fox jumps over the sleeping dog" >/dev/ttyAMA0
$ pigs -a slr 15 100
48 The lazy brown fox jumps over the sleeping dog\x0d\x0a