\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=Prolog,basicstyle=\ttfamily\footnotesize,
commentstyle=\fontseries{lc}\selectfont\itshape,columns=fullflexible]
hello :- world
% This is a comment
\end{lstlisting}
\end{document}
Answer of Heiko Oberdiek:
Hijacking the answer, because the question is closed, when I was seconds from sending my anser. :-((((
A variation of Herbert's answer, which requires columns=fullflexible.
The following example uses this setting for the comment only. Then other values of columns can be used, if vertical alignment is an issue and requires a less flexible setting for columns:
\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{listings}
\newcommand*{\mycommentstyle}[1]{%
\begingroup
\fontseries{lc}%
\fontshape{it}%
\selectfont
\lstset{columns=fullflexible}%
#1%
\endgroup
}
\begin{document}
\begin{lstlisting}[
language=Prolog,
basicstyle=\ttfamily,
commentstyle=\mycommentstyle,
]
a :- b % Dummy statement
hello :- world % This is a longer comment
% This is a comment again
\end{lstlisting}
\end{document}

BTW, if the vertical alignment requirements allow it, I would prefer fullflexible or at least flexible to fixed as value for columns.
The text is much nicer to read. There is even a variable width typewriter font
(family lmvtt or option variablett for package lmodern).
columns=fullflexible. Since you're highlighting some Prolog code, you may also be interested in this answer of mine. – jub0bs Jun 14 '14 at 14:57columnsfor the whole listings affects the whole listings. – Heiko Oberdiek Jun 14 '14 at 16:12