Il problema è qui:
`ORDER BY karma...
Non puoi ordinare in base a qualcosa che è definito come un alias. Prova questo:
`ORDER BY ((SUM(votes.karma_up) - SUM(votes.karma_down)) - 1) / POW((TIMESTAMPDIFF(HOUR, links.created, NOW()) + 2), 1.5) DESC`
Si spera che il DB riesca a capire di non valutarlo due volte. In caso contrario, usa prima una selezione interna senza l'ordine per creare l'alias, quindi usa un'altra selezione per ordinare.