式1 ? 式2 : 式3
式1の結果によって式2または式3を返します。

if 式1 then 式2 else 式3 end
とまったく同じです。

ってあるけどさ、これどういう事?

defined? String ? "OK" : "NG"
=> "expression"

if defined? String then "OK" else "NG" end
=> "OK"

以下で確認。
ruby 1.8.2 (2005-04-11) [i386-linux]
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]