maybe because baseclass reads the current job? BaseCLass == Job_Bard || BaseClass == Job_Dancer will (I think) will only read both Bard and Dancer job respectively.
to fix this
5151,Headset_OST,Note Headphones,5,20,,200,,4,,1,0xFFFFFFFF,7,2,256,,0,1,220,{ bonus2 bResEff,Eff_Sleep,10000; bonus bMdef,5; bonus bFlee2,5; if( BaseJob == Job_Bard||BaseJob == Job_Dancer ) bonus3 bAutoSpell,"CG_TAROTCARD",getskilllv(489),50; },{},{}