High Frequency Logic Level Conversion
TL;DR Your frequency is too high for that method of level shifting.

Old thread but on the off chance that someone stumbles across this like I did while looking for answers here's what is likely wrong:

I built my own level shifter based on the sparkfun level shifter which you  are using. Like you I am attempting to shift 3.3V up to 5V at a frequency of 1MHz. I used a slightly different transistor/MOSFET and mine was just outputting 0V when on.

Changing my resistor values down to 100 ohms improved the output (I got spikes that went to about 3.3V so still not what was desired).

I then tried reducing the frequency to 1 KHz and the level shifter worked perfectly. 

Basically I think the pwm turns the gate on (output goes low) and when it turns off again it takes awhile (too long at high freq) for the output to become high again. The resistor is just too slow. Smaller resistor values help but at 1 MHz I've found it's not quite good enough.

Alternate options to consider include:


using an opamp with a high slew rate (such as the LT1995 http://cds.linear.com/docs/en/datasheet/1995fb.pdf, note this one is surface mount only)
Or use a MOSFET driver (example: http://www.onsemi.com/pub_link/Collateral/MC34151-D.PDF)