The following seems to be what you're after:

\documentclass{article}
\makeatletter
% Taken from latex.ltx
\def\@newl@bel#1#2#3{{%
\@ifundefined{#1@#2}%
{\expandafter\xdef\csname rr@#2\endcsname{\@firstoftwo #3}}
{\gdef \@multiplelabels {%
\@latex@warning@no@line{There were multiply-defined labels}}%
\@latex@warning@no@line{Label `#2' multiply defined}
\expandafter\xdef\csname rr@#2\endcsname{\csname rr@#2\endcsname, \@firstoftwo #3}}%
\global\@namedef{#1@#2}{#3}}}
\makeatother
\newcounter{example}
\newcommand{\myref}[1]{\csname rr@#1\endcsname}
\let\mylabel\label
\begin{document}
Warning:
Examples
\myref{pessimistic} % 1, 4
are pessimistic.
Apart from that, only examples
\myref{beginner} % 1, 2
are suitable for beginners.
\refstepcounter{example} \mylabel{beginner} \mylabel{pessimistic}
\refstepcounter{example} \mylabel{beginner} \mylabel{optimistic}
\refstepcounter{example} \mylabel{intermediate}
\refstepcounter{example} \mylabel{expert} \mylabel{pessimistic}
\end{document}
The definition of \@newl@bel is taken from latex.ltx and updated to create a macro \rr@<label> for every \label{<label>}. If \rr@<label> already exists, then it appends the new label, otherwise it just creates it. Referencing requires \myref, while \mylabel is similar to \label.
This will not work with hyperref.
Label can also be supplied as a comma-separated list using etoolbox and the following definition of \mylabel. See How to iterate over a comma separated list? for more options:
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\newcommand{\mylabel}[1]{% \mylabel{<list of labels>}
\renewcommand*{\do}[1]{\label{##1}}% How to process each item
\docsvlist{#1}}% Process list of items
indexseems the natural way to do this- just out of curiosity, why do you want to avoid using one? – cmhughes Feb 10 '14 at 18:21\partis introducing topics. At the end of each topic, I want to give a list of references, where this topic appears in the rest of the book. In that way, it's similar to the TeX's back-references. – arney Feb 10 '14 at 18:40