Actually, the code you show would print a newline *before* a line containing my_word:
Code:
$ echo -e 'hello\nmy_word\ngoodbye' | sed '/my_word/{x;p;x;}'
hello
my_word
goodbye
Sed works by reading and copying the current input line into what it calls "the pattern space" (deleting the newline). Then commands are performed on that pattern space (think of it as a machine register that points to a string). Sed also has a second register called "the hold space" (also a machine register that points to another string).
The x (exchange0 command swaps the hold space with the pattern space..
So your command takes a line, swaps the that line (minus the newline) with the hold space (which is empty). So the pattern space is now empty, and the hold space contains the input line (minus the newline). It them prints (the p command) the contents of the pattern space (empty, so a newline is printed). Then, once again, you swap pattern and hold. Finally, sed's default action is to print the pattern space, so the matched line is printed.