In pratica tu chiedi:
se un oggetto <a> contiene del testo applica un certo effetto, se contiene un'immagine non applicarlo.
Servirebbe un "selettore di genitorialita`", che pero` non esiste (che io sappia).

Quello che puoi fare (ma richiede modifiche alla marcatura) e` definire un oggetto all'interno del link a cui applicare l'effetto.

Esempio (da sviluppare)
codice:
HTML:
<span>qui del testo</span>
[img]...[/img]

CSS:
a { formattazione comune ai due }
a:hover { formattazione comune ai due :hover }
a span { formattazione per il testo (a riposo) }
a:hover span { formattazione per il testo (con mouseover) }
a img { formattazione per l'immagine (a riposo) }
a:hover img { formattazione per l'immagine (con mouseover) }
Nota che non e` proprio quello che chiedevi, pero` con un po' di attenzione si puo` riuscire a farlo apparire come lo volevi
E` da notare che il link rimane comunque rettangolare, ma se il link stesso non ha sfondo e non ha bordi (che vanno tutti spostati nello span) quello che appare e` l'effetto richiesto.
Solo se passi con il mouse nell'angolo (fuori dallo span ma dentro il link), noti che il link e` piu` esteso della grafica.