After trying almost everything in stackoverflow and deeply digging into my code, I realized that the problem with CardView's shadow was setRotationY().
The CardView was inside a RecyclerView and for some reasons (rtl) I had to rotateY both recyclerView and its children to 180.
After removing the rotations the shadow was finally revealed. What's with it? how can I have the shadow when rotating? Is there any trigger that can redraw the shadow or anything?