I figured out why this is happening :
In the third person template , in the character blueprint , skeletal mesh is assigned to "native skeletal mesh component ", which can actually do the attaching events properly .
But in the first person template , " native skeletal mesh component" is empty . there is another “skeletal mesh component” ( not native ) , which is parented to camera , because it needs to inherit rotations of the camera . it is this way because you cant parent “native skeletal mesh component” to anything , nor rename or remove it .
to sum it up :
Attach events doesnt work properly with "Skeletal mesh component " but they work fine with " Native skeletal mesh component " . and you cant solve this by parenting the " native skeletal mesh component " to the camera , since it cant be moved , renamed , deleted .well that seems like an issue to me anyway .
How to solve :move your skeletal mesh from “skeletal mesh component” to “native skeletal mesh component " then in graph of the character blueprint , add an “attach to” node and attach " native skeletal mesh” to camera when begin playing .