This is slang from the American south (at least, I've never heard a northerner say it) that means shady or involved in illegal activity.
It probably comes from crooked, as in crook, which of course, is the opposite of straight.
I've only heard it used in the sense of dishonest or fraudulent, never as a synonym for gay.