Ciao,
dal momento che non so i vostri casi particolari e le vostre esigenze, allora vi illustro le prime soluzioni che mi sono venute a mente, poi vi adatterete di conseguenza.
Parto col spiegare perché il margin-left sul "ul" non funziona:
se teniamo conto che l'immagine è di 100px larga e noi diamo un "margin-left:20px" alla "ul", dal momento che un elemento float c'è ma non c'è, datoché non è proprio "fisico", allora non viene considerato come riferimento per il margine, ma bensì verrà considerato come riferimento il border del div padre, perciò:
codice:
img
<------------>
margin
<--> * |<-inizio lista
Se invece noi diamo alla lista "margin-left: 100px;"
codice:
img
<------------>
margin
<------------> * |<-inizio lista
Detto questo, l'uovo di colombo sarebbe dare un margine destro all'immagine flottante:
codice:
img{
margin-right: 20px;
}
ma ciò comporta che anche il paragrafo venga distanziato.
La seconda soluzione sarebbe quella di racchiudere paragrafo e lista in un div con "float: left;"
mentre l'immagine ha "display: block; float: left;" solo che in questo modo le scritte non scivolano più sotto l'immagine quando è finita... vedete voi. (la seconda soluzione non l'ho testata, causa tempo!)
PS: spero di aver capito bene il problema 
hth
ciauz