Programming an atmega328p via raspberry pi gpio and avrdude incompatible with logic level shifter?

A RX and TX signal is a TTL-signal with strong high and low levels.
A I2C signal has weak high levels, because only a pullup resistor pulls the signal high. When a I2C signal is no longer low, then it slowly flutters upwards and hopefully becomes high someday. Very nice pictures here: http://www.gammon.com.au/forum/?id=10896&reply=5#reply5

When you use a I2C level shifter, then you have turned a strong signal into a weak signal. Combine that with bad wiring and it will fail.
Can you show a photo of your wiring ?